//const ald = require('./utils/ald-stat.js'); // 阿拉丁统计
var util = require('vp/resource/js/util.js');
App({
		globalData: {
			launchParams: null // 保存二维码/链接传递的参数
		},
        onLaunch: function (res) {	
			this.checkUpdate();
			this.handleLaunchParams(res);
        },
        onShow: function (res) {
			this.handleLaunchParams(res);
			if (res.scene !== 1154) {
				setInterval(() => {
				  wx.checkSession({
					success() { 
						console.log('succ')
					},
					fail() { 
					  wx.login({
						success: (loginRes) => {
						  if (loginRes.code) {
							// 发送登录code到服务器获取session_key
							util.getUserInfo(function (response) {
								
							});
						  }
						}
					  })
					}
				  });
				}, 20 * 60 *1000); // 20分钟检查一次
			}
			console.log('app onshow')
        },
        onHide: function () {
        },
        onError: function (msg) {
                console.log(msg)
        },
		// 统一处理参数的方法
		  handleLaunchParams(options) {
		    if (options?.query && Object.keys(options.query).length > 0) {
		      // 保存参数到全局变量
		      this.globalData.launchParams = options.query;
		      // 可在这里添加参数验证、解析逻辑
		      console.log('获取到参数：', options.query);
		    }
		  },
		checkUpdate() {
		    if (!wx.canIUse('getUpdateManager')) {
		      // 兼容处理
		      return this.showCompatTips()
		    }
		
		    const updateManager = wx.getUpdateManager()
			console.log(updateManager,'=================')
			if(!updateManager) return
		    // 监听检查更新结果
		    updateManager.onCheckForUpdate(res => {
		      if (!res.hasUpdate) return
		      console.log('发现新版本')
		    })
		
		    // 下载完成回调
		    updateManager.onUpdateReady(() => {
		      this.showUpdateConfirm(updateManager)
		    })
		
		    // 下载失败回调
		    updateManager.onUpdateFailed(() => {
		      wx.showToast({
		        title: '更新失败，请检查网络',
		        icon: 'none'
		      })
		    })
		  },
		
		  // 显示更新提示
		  showUpdateConfirm(updateManager) {
		    wx.showModal({
		      title: '更新提示',
		      content: '发现新版本，是否立即重启应用？',
		      confirmText: '立即更新',
		      cancelText: '下次再说',
		      success: res => {
		        if (res.confirm) {
		          // 强制应用重启
		          updateManager.applyUpdate()
		        } else {
		          // 可选：记录用户拒绝，下次提示
		          this.setRejectFlag()
		        }
		      }
		    })
		  },
		
		  // 兼容处理（基础库版本过低）
		  showCompatTips() {
		    wx.showModal({
		      title: '提示',
		      content: '当前微信版本过低，请升级到最新微信版本',
		      showCancel: false
		    })
		  },
		
		  // 记录用户拒绝更新（可选）
		  setRejectFlag() {
		    try {
		      wx.setStorageSync('rejectUpdate', Date.now())
		    } catch (e) {
		      console.error('存储失败', e)
		    }
		  },
		
		  // 检查是否应该再次提示（可选）
		  shouldShowUpdate() {
		    try {
		      const lastReject = wx.getStorageSync('rejectUpdate')
		      if (!lastReject) return true
		      // 24小时内不再提示
		      return Date.now() - lastReject > 24 * 60 * 60 * 1000
		    } catch (e) {
		      return true
		    }
		  },
        //加载工具类
        util: util,
       
        //用户信息，sessionid是用户是否登录的凭证
        userInfo: {
            sessionid: null,
        },
        mdName:'vp_pz',


        // 模块初始化信息（配置和用户信息）
        mine: null,
        area:null,
        reInit:false, // 是否重新加载初始化信息 
        mdInit: function (cb,opts={}, ref = false) {
                var self = this;

       
                // 如果页面参数中含有fcmd相关，需强制更新初始化
                //if (opts.fcmd){
                //    ref=true;
                //}
                
                ref = ref || self.reInit;

                var doInit = function (options = {}) {
                        self.reInit=false;
                        console.log(' ===== init load =====');
                        /****  不采用初始化时统一执行额外命令，改由各业务逻辑自行处理
                        var fcode = "";
                        var fcmd="";  // 来源指令：follow:关注指令（即强制种心）
                        var fuid="";    // 来源用户uid
                        var fbid="";    // 来源书bookid
                        if(options.fcode){
                            fcode = options.fcode;
                        }
                        if(options.scene){
                            fcode = options.scene;
                        }
                        if (fcode){
                            var fcodes = fcode.split('_');
                            fcmd = fcodes[0];
                            if (fcmd=='follow'){
                                fuid = fcodes[1];
                                if (fcodes.length > 2) {
                                    fbid = fcodes[2];
                                }
                            }
                        }
                         */

                        util.request({
                                url: 'app/init',
                                showLoading: false,
                                data: {
                                        m: self.mdName,
                                        //fcmd: options.fcmd ? options.fcmd:'',
                                        aid: options.aid ? options.aid : '',
                                        fuid: options.fuid ? options.fuid : '',
                                        //fbid: options.fbid ? options.fbid : '',
                                        //puid:options.suid ? options.puid : '',
                                },
                                success(res) {
                                        console.log(" ===== init loaded =====");
                                        console.log(res.data);
                                        //wx.setStorageSync('siteConfig', res.data);
                                    self.cfg = res.data.data.cfg;
                                    self.mine = res.data.data.mine;
                                    self.area = res.data.data.area;
                                
                                    // 更新保存最新访问的城市
                                    wx.setStorageSync('VP_AID', self.area.id);
                                    wx.setStorageSync('VIP_STASTUS', self.mine.is_vip);

                                    typeof cb == "function" && cb(res.data.data.cfg, res.data.data.mine, res.data.data.area);
                                }
                        })

                };

                var cfg = self.cfg;
                var mine = self.mine;
                var area = self.area;
                if (cfg && mine &&  !ref) {
                        console.log(" ===== init local =====");
                        console.log(cfg);
                        console.log(mine);
                        typeof cb == "function" && cb(cfg,mine,area);
                } else {
                        //调用加载配置接口
                        doInit(opts);
                }
        },

        // 更新我的应用内个人信息
        updateMine: function (cb) {
                var self = this;

                var doUpdate = function () {
                        console.log(' ===== mine update =====');

                        util.request({
                                url: 'User/update',
                                showLoading: false,
                                data: {
                                        m: self.mdName
                                },
                                success(res) {
                                        console.log(" ===== mine updated =====");
                                        console.log(res.data);
                                    self.mine = res.data.data.mine;
                                    typeof cb == "function" && cb(res.data.data.mine);
                                }
                        })

                };

                //调用加载配置接口
                doUpdate(cb);
        },

        // 全局参数（页面间传递用）
        orders_filt:0,
        index_refresh:false,// 是否需要强制刷新首页  

        appinfo: require('appinfo.js')
});